/**
 * Author(s): xuming.Wong <xuming.Wong@gmail.com>
 */

#ifndef __G_EVENT_LISTENER_H__
#define __G_EVENT_LISTENER_H__

#include "GameObject.h"
#include "TerrainObject.h"

#include "TerrainGroupObject.h"

namespace PQEngine
{
	class GameEventListener
	{
	public:
		GameEventListener();
		~GameEventListener();
		virtual void OnRenderSettingSelected();
		virtual void OnTerrainGroupCreated(TerrainGroupObject* object);
		virtual void OnTerrainGroupSelected(TerrainGroupObject* object);
		
		virtual void OnTerrainObjectCreated(TerrainObject* object);
		virtual void OnTerrainObjectSelected(TerrainObject* object);

		virtual void OnCreateObject(ObjectType type,int x,int y);
		virtual void OnAddResource(std::string path,int x,int y);

		virtual void OnCreateComponet(GameObject *obj,Component* componet);
		virtual void OnAddComponet(GameObject *obj,Component* componet);
		virtual void OnAddChildGameObject(GameObject *parent,GameObject *child);
		virtual void OnRemoveChildGameObject(GameObject *parent,GameObject *child);
		virtual void OnGameObjectSelected(GameObject *object);
		virtual void OnTranslateObject(GameObject *object);
		virtual void OnRotateObject(GameObject *object);
		virtual void OnScaleObject(GameObject *object);

	};
}
#endif
